$(function () {
  // 1.初始化文章类别列表
  initArticleCate()
  function initArticleCate() {
    axios({
      method: "get",
      url: "/my/article/cates",
    }).then(({ data: res }) => {
      if (res.status != 0) {
        return layer.msg(res.message)
      }
      // 渲染
      let arr = []
      res.data.forEach((ele) => {
        arr.push(`
          <tr>
            <td>${ele.Id}</td>
            <td>${ele.name}</td>
            <td>${ele.alias}</td>
            <td>
              <button
                data_id="${ele.Id}"
                type="button"
                class="changeList layui-btn layui-btn-xs"
              >
                修改
              </button>
              <button
                data_id="${ele.Id}"
                type="button"
                class="delete layui-btn layui-btn-danger layui-btn-xs"
              >
                删除
              </button>
            </td>
          </tr>
        `)
      })
      $("tbody").empty().html(arr.join(""))
    })
  }

  // 2.新增文章列表
  // 2.1文章新增表单显示
  let formAdd = ""
  $("#add").on("click", function () {
    formAdd = layer.open({
      type: 1,
      title: "添加文章类别",
      area: ["500px", "300px"],
      content: $("#addForm"),
    })
  })
  // 2.2表单内容验证
  layui.form.verify({
    name: [/^\S{1,10}$/, "1-10位非空字符串"],
    alias: [/^\S{1,10}$/, "1-10位非空字符串"],
  })
  // 2.3表单提交
  $("#addForm").on("submit", function (e) {
    e.preventDefault()
    axios({
      method: "post",
      url: "/my/article/addcates",
      data: $(this).serialize(),
    }).then(({ data: res }) => {
      // 失败提示
      if (res.status != 0) {
        return layer.msg(res.message)
      }
      // 成功提示
      layer.msg(res.message)
      // 关闭表单
      layer.close(formAdd)
      this.reset()
      $("#addForm").hide()
      initArticleCate()
    })
  })
  // 2.4隐藏表单
  $("body").on("click", "a.layui-layer-ico", function () {
    $("#addForm").hide()
    $("#changeFormList").hide()
  })

  // 3.删除文章
  $("tbody").on("click", ".delete", function () {
    axios({
      method: "get",
      url: "/my/article/deletecate/" + $(this).attr("data_id"),
    }).then(({ data: res }) => {
      // 失败提示
      if (res.status != 0) {
        return layer.msg(res.message)
      }
      // 成功提示
      layer.msg(res.message)
      initArticleCate()
    })
  })

  // 4.修改文章
  // 4.1修改点击事件
  let changeForm = ""
  $("tbody").on("click", ".changeList", function () {
    changeForm = layer.open({
      type: 1,
      title: "修改文章",
      area: ["500px", "300px"],
      content: $("#changeFormList"),
    })
    axios({
      method: "get",
      url: "/my/article/cates/" + $(this).attr("data_id"),
    }).then(({ data: res }) => {
      // 失败提示
      if (res.status != 0) {
        return layer.msg(res.message)
      }
      layui.form.val("formChange", res.data)
    })
  })
  // 4.2修改文章表单提交
  $("#changeFormList").on("submit", function (e) {
    e.preventDefault()
    axios({
      method: "post",
      url: "/my/article/updatecate",
      data: $(this).serialize(),
    }).then(({ data: res }) => {
      // 失败提示
      if (res.status != 0) {
        return layer.msg(res.message)
      }
      // 成功提示
      layer.msg(res.message)
      layer.close(changeForm)
      $("#changeFormList").hide()
      initArticleCate()
    })
  })
})
